#include <iostream>
#include <string>

/*
命名空间的嵌套形式
	命名空间嵌套 函数
	命名空间嵌套 命名空间
*/
using namespace std;

// 类内声明 类外定义
namespace Func
{
	int add(int val_1, int val_2);
}
int Func::add(int val_1, int val_2)
{

	return val_1 + val_2;
}

namespace student_system
{
	// 登录
	namespace log_in
	{
		string name;
		string password;
		int id;
	}
	// 学生
	namespace student
	{
		string name;
		int id;
		string sex;
	}
}

using namespace student_system;
using namespace student_system::log_in;

int main(int argc, char const *argv[])
{
	password = "1234567";
	log_in::name = "张三";
	id = 2;

	student::sex = "女";
	student::id = 3;
	cout << Func::add(10, 20) << endl;
	// 在使用 printf 函数时，对于 std::string 类型的变量，需要使用 c_str() 方法将其转换为 const char* 类型，以避免类型不匹配的错误。
	printf("log_in_id=%d,log_in_name=%s\n", id, name.c_str());
	printf("student_id=%d,student_sex=%s\n", student::id, student::sex.c_str());

	return 0;
}
